Barcode readers have recently been added as a feature to some mobile telecommunications devices such as mobile telephones. The camera on the mobile device, or a similar component on the device with scanning capabilities, can capture an image of a barcode. Software on the device can then decode the barcode into usable data. The hardware that captures the image and the software that resolves the image into data can collectively be referred to as the barcode reader. A barcode that can be or has been scanned by a barcode reader on a mobile device can be referred to as a mobile code.
Barcodes can be classified as either one-dimensional (1D) or two-dimensional (2D). A one-dimensional barcode consists of a series of parallel bars and spaces of varying widths, arranged along a baseline, in which data is encoded. Two-dimensional barcodes use both the vertical and horizontal components to hold data. 2D barcodes can be separated into two types—stacked and matrix codes. Stacked barcodes consist of several lines of bars and spaces, one above another in the barcode symbol. Matrix barcodes consist of blocks of data cells, typically constructed from polygons, along with a characteristic orientation symbol. Other barcode solutions exist based on other schemes such as the Microsoft High Capacity Color Barcode. In any of these cases, the method of representing data (e.g., digits, characters) in the barcode, that is, the barcode encoding scheme, can be referred to as its symbology. The visual appearance of a barcode can be referred to as its symbol or image. The data encoded in a barcode follows one of several standardized data formats. For example, 1D barcodes typically comply with the EAN-13 symbology standard.
Mobile codes can be classified according to the mode by which a symbology is resolved into data and whether the data is in a form that can be used by a mobile device without further processing. The direct mode of symbology resolution is performed entirely within the reader. That is, a barcode reader scans a mobile code and resolves the symbology into a form that needs no further decoding to retrieve the resolved content. In some cases, the resolved content might be directly available to a mobile device that includes the barcode reader. For example, a barcode reader on a mobile device might scan a mobile code printed on a business card. The contact information encoded in the mobile code might then appear as a contact entry on the screen of the mobile device. That is to say, the barcode reader may communicate contact information, which is resolved from the symbology, to an address book or other personal information management (PIM) type client application on the mobile device where the contact information is populated into fields of a contact template for display, editing and, ultimately, storage to a data structure resident in the mobile device or elsewhere (e.g., in a network operator's server, in a Converged Address Book (CAB) defined by the Open Mobile Alliance, etc.). In other cases, the resolved content might be a Uniform Resource Identifier (URI) or some other type of network address. A mobile device that reads such a mobile code might connect to the service or network location specified by the URI, for example when the barcode reader communicates the URI (or the like) to a web browser application on the mobile device.
In the indirect mode of symbology resolution, a barcode reader resolves a mobile code locally into an identifier that can be referred to as the indirect code identifier or ICI. The mobile device that includes the barcode reader then sends the ICI to a network element such as a server. The network element then uses the ICI to determine the data that is to be returned to the mobile device. That is, in the indirect mode, the resolved content in the form of the ICI is further processed by the network element in order to be converted into data that is usable by the mobile device. It is to be noted that the network element receiving the ICI may retrieve the data corresponding to this ICI from another network element. In some cases, the network element returns data (e.g., an image, a coupon, a URI, a vCard, a text message or SMS, multimedia message (MMS), etc.) that might be displayed on the screen of the mobile device. In other cases, the network element returns a URI or other network address, and the mobile device connects to the service or network location specified by the URI.
As used herein, the term “mobile device” might in some cases refer to portable devices such as mobile telephones, personal digital assistants, handheld or laptop computers, and similar devices that have telecommunications capabilities and an integrated barcode reader. In other cases, the term “mobile device” might refer to devices that have similar capabilities but that are not transportable, such as fixed line telephones, desktop computers, or set-top boxes. Such non-transportable devices might have access to a barcode reader that is not necessarily integrated or unitary with the device.